[INFO] fetching crate zbus-lib 0.1.6...
[INFO] checking zbus-lib-0.1.6 against master#e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682 for beta-170-4
[INFO] extracting crate zbus-lib 0.1.6 into /workspace/builds/worker-5-tc2/source
[INFO] validating manifest of crates.io crate zbus-lib 0.1.6 on toolchain e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate zbus-lib 0.1.6
[INFO] finished tweaking crates.io crate zbus-lib 0.1.6
[INFO] tweaked toml for crates.io crate zbus-lib 0.1.6 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] crate crates.io crate zbus-lib 0.1.6 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8e02950108f0b28589105e63a510976896d47c7897d751d9c6ea990fc1ee5a8e
[INFO] running `Command { std: "docker" "start" "-a" "8e02950108f0b28589105e63a510976896d47c7897d751d9c6ea990fc1ee5a8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8e02950108f0b28589105e63a510976896d47c7897d751d9c6ea990fc1ee5a8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8e02950108f0b28589105e63a510976896d47c7897d751d9c6ea990fc1ee5a8e", kill_on_drop: false }`
[INFO] [stdout] 8e02950108f0b28589105e63a510976896d47c7897d751d9c6ea990fc1ee5a8e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f24589f34e422ed3479740cee1c0fd4f2c8b0e3ac0edd28ecfd59f899b5d9126
[INFO] running `Command { std: "docker" "start" "-a" "f24589f34e422ed3479740cee1c0fd4f2c8b0e3ac0edd28ecfd59f899b5d9126", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.67
[INFO] [stderr]    Compiling proc-macro2 v1.0.9
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]    Compiling syn v1.0.16
[INFO] [stderr]    Compiling serde v1.0.104
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]     Checking smallvec v1.2.0
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling typenum v1.11.2
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]     Checking ppv-lite86 v0.2.6
[INFO] [stderr]    Compiling ryu v1.0.2
[INFO] [stderr]     Checking byte-tools v0.3.1
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]     Checking block-padding v0.1.5
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]    Compiling httparse v1.3.4
[INFO] [stderr]     Checking unicode-normalization v0.1.12
[INFO] [stderr]     Checking adler v0.2.2
[INFO] [stderr]     Checking traitobject v0.1.0
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]     Checking linked-hash-map v0.5.3
[INFO] [stderr]     Checking unsafe-any v0.4.2
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]     Checking miniz_oxide v0.4.0
[INFO] [stderr]     Checking c2-chacha v0.2.3
[INFO] [stderr]     Checking percent-encoding v2.1.0
[INFO] [stderr]     Checking yaml-rust v0.4.4
[INFO] [stderr]     Checking opaque-debug v0.2.3
[INFO] [stderr]     Checking lazycell v1.2.1
[INFO] [stderr]     Checking itoa v0.4.5
[INFO] [stderr]     Checking fake-simd v0.1.2
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking dtoa v0.4.6
[INFO] [stderr]     Checking typemap v0.3.3
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking log-mdc v0.1.0
[INFO] [stderr]     Checking arc-swap v0.4.7
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.33
[INFO] [stderr]     Checking parking_lot_core v0.7.2
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking flate2 v1.0.16
[INFO] [stderr]     Checking thread-id v3.3.0
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking parking_lot v0.10.2
[INFO] [stderr]     Checking rand_chacha v0.2.1
[INFO] [stderr]     Checking idna v0.2.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking generic-array v0.12.3
[INFO] [stderr]     Checking ordered-float v1.0.2
[INFO] [stderr]     Checking digest v0.8.1
[INFO] [stderr]     Checking block-buffer v0.7.3
[INFO] [stderr]     Checking sha-1 v0.8.2
[INFO] [stderr]     Checking url v2.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.104
[INFO] [stderr]     Checking chrono v0.4.11
[INFO] [stderr]     Checking serde-value v0.6.0
[INFO] [stderr]     Checking serde_yaml v0.8.13
[INFO] [stderr]     Checking serde_json v1.0.48
[INFO] [stderr]     Checking uuid v0.8.1
[INFO] [stderr]     Checking mio v0.6.21
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking ws v0.9.1
[INFO] [stderr]     Checking log4rs v0.12.0
[INFO] [stderr]     Checking zbus-lib v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, `warn`
[INFO] [stdout]  --> src/log_config.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, error, info, LevelFilter, SetLoggerError, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^                               ^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `channel`
[INFO] [stdout]  --> src/rpc/io.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::{channel, Sender};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/rpc/io.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/rpc/io.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZbusErr`
[INFO] [stdout]   --> src/rpc/io.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::err::{ZbusErr, ZbusResult};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, `warn`
[INFO] [stdout]  --> src/log_config.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, error, info, LevelFilter, SetLoggerError, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^                               ^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZbusErr`
[INFO] [stdout]   --> src/rpc/io.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::err::{ZbusErr, ZbusResult};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/rpc/io.rs:47:36
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let id = req.id().unwrap();/// 这个存在判断是在调用rpc前验证过的
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |         let req_headers = req.headers();
[INFO] [stdout]    |         -------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/rpc/handler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/rpc/handler.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, SystemTime};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/rpc/io.rs:47:36
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let id = req.id().unwrap();/// 这个存在判断是在调用rpc前验证过的
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |         let req_headers = req.headers();
[INFO] [stdout]    |         -------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/rpc/handler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/client/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/rpc/handler.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, SystemTime};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/client/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::DeserializeOwned`
[INFO] [stdout]  --> src/client/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::de::DeserializeOwned;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/client/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/client/component.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/client/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/client/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/client/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]  --> src/client/component.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::Sender;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::DeserializeOwned`
[INFO] [stdout]  --> src/client/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::de::DeserializeOwned;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/client/component.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/client/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/client/component.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/client/component.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::client::RpcClient`
[INFO] [stdout]  --> src/client/component.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::client::RpcClient;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/client/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]  --> src/client/component.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::Sender;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Message`, `Request`
[INFO] [stdout]   --> src/client/component.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::message::{Message, Request};
[INFO] [stdout]    |                      ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/client/component.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/client/component.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IOHandlers`, `Protocol`
[INFO] [stdout]   --> src/client/component.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::rpc::{IOHandlers, Protocol, WsRpcHandler};
[INFO] [stdout]    |                  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::client::RpcClient`
[INFO] [stdout]  --> src/client/component.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::client::RpcClient;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instruct`
[INFO] [stdout]   --> src/client/component.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::wsocket::{Instruct, WsClient};
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Message`, `Request`
[INFO] [stdout]   --> src/client/component.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::message::{Message, Request};
[INFO] [stdout]    |                      ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/service/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IOHandlers`, `Protocol`
[INFO] [stdout]   --> src/client/component.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::rpc::{IOHandlers, Protocol, WsRpcHandler};
[INFO] [stdout]    |                  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]  --> src/service/component.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::Sender;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/service/component.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instruct`
[INFO] [stdout]   --> src/client/component.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::wsocket::{Instruct, WsClient};
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]   --> src/service/component.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::message::{Message, Request};
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/service/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instruct`
[INFO] [stdout]   --> src/service/component.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::wsocket::{Instruct, WsClient};
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/err/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]  --> src/service/component.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::Sender;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/service/component.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CloseCode`, `Handler`
[INFO] [stdout]  --> src/wsocket/mod.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ws::{CloseCode, Handler, Sender as WsCmd};
[INFO] [stdout]   |          ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]   --> src/service/component.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::message::{Message, Request};
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZbusErr`
[INFO] [stdout]  --> src/wsocket/mod.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::err::{OkResult, ZbusErr, ZbusResult};
[INFO] [stdout]   |                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instruct`
[INFO] [stdout]   --> src/service/component.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::wsocket::{Instruct, WsClient};
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/wsocket/mod.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::message::{Message, Request, Response};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/wsocket/handler.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::message::{Message, Request, Response};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/err/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/wsocket/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CloseCode`, `Handler`
[INFO] [stdout]  --> src/wsocket/mod.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ws::{CloseCode, Handler, Sender as WsCmd};
[INFO] [stdout]   |          ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/wsocket/component.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZbusErr`
[INFO] [stdout]  --> src/wsocket/mod.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::err::{OkResult, ZbusErr, ZbusResult};
[INFO] [stdout]   |                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/wsocket/mod.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::message::{Message, Request, Response};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/wsocket/handler.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::message::{Message, Request, Response};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/wsocket/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/wsocket/component.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `receiv`
[INFO] [stdout]    --> src/rpc/io.rs:116:18
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let (sender, receiv) = channel::<Instruct>();
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_receiv`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/rpc/io.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     for i in 0..10 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]    --> src/rpc/io.rs:103:43
[INFO] [stdout]     |
[INFO] [stdout] 103 |     io_handler.add_method("test".into(), |req: Value| {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]    --> src/rpc/io.rs:106:44
[INFO] [stdout]     |
[INFO] [stdout] 106 |     io_handler.add_method("test1".into(), |req: Value| {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resp`
[INFO] [stdout]    --> src/wsocket/component.rs:181:36
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 for (id, (timeout, resp)) in &queue {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_resp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/wsocket/component.rs:222:28
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn on_close(&mut self, code: CloseCode, reason: &str) {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reason`
[INFO] [stdout]    --> src/wsocket/component.rs:222:45
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn on_close(&mut self, code: CloseCode, reason: &str) {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resp`
[INFO] [stdout]    --> src/wsocket/component.rs:181:36
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 for (id, (timeout, resp)) in &queue {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_resp`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute` is never used
[INFO] [stdout]   --> src/rpc/io.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl IOHandler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 21 |     pub fn execute(&self, req: Request) -> ZbusResult<Value> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated constants are never used
[INFO] [stdout]   --> src/rpc/protocol.rs:7:11
[INFO] [stdout]    |
[INFO] [stdout] 3  | impl Protocol {
[INFO] [stdout]    | ------------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7  |     const STATUS: &'static str = "status";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     const BODY: &'static str = "body";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 12 |     // Message body
[INFO] [stdout] 13 |     const API_KEY: &'static str = "apiKey";
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 14 |     // Authentication  Key
[INFO] [stdout] 15 |     const SIGNATURE: &'static str = "signature"; // Authentication signature generated
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     const PUB: &'static str = "pub";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     const TAKE: &'static str = "take";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     const REMOVE: &'static str = "remove";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 29 |     //Remove MQ/Channel
[INFO] [stdout] 30 |     const QUERY: &'static str = "query";
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 31 |     //Query MQ/Channel
[INFO] [stdout] 32 |     const PING: &'static str = "ping";     //Heartbeat ping
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     const FILTER: &'static str = "filter";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 37 |     //Filter on message's tag
[INFO] [stdout] 38 |     const TAG: &'static str = "tag";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 39 |     //Tag of message, if filter applied
[INFO] [stdout] 40 |     const OFFSET: &'static str = "offset";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 41 |     const CHECKSUM: &'static str = "checksum";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     const CHANNEL_MASK: &'static str = "channelMask";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 50 |     const WINDOW: &'static str = "window";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 51 |     const ACK: &'static str = "ack";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     const MASK_EXCLUSIVE: i32 = 1 << 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     const MASK_TAKEOVER: i32 = 1 << 2;   //NOT support yet
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `url` is never read
[INFO] [stdout]   --> src/wsocket/component.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct WsClient {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 17 |     tx: Sender<Instruct>,
[INFO] [stdout] 18 |     url: &'static str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/wsocket/component.rs:222:28
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn on_close(&mut self, code: CloseCode, reason: &str) {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reason`
[INFO] [stdout]    --> src/wsocket/component.rs:222:45
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn on_close(&mut self, code: CloseCode, reason: &str) {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |             tx.send(Instruct::Delivery(reply(builder, headers, 400, "url required"), None));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 54 |             let _ = tx.send(Instruct::Delivery(reply(builder, headers, 400, "url required"), None));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 tx.send(Instruct::Delivery(reply(builder, headers, 404, format!("URL={} Not Found", url)), None));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 let _ = tx.send(Instruct::Delivery(reply(builder, headers, 404, format!("URL={} Not Found", url)), None));
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     tx.send(Instruct::Delivery(response, None));
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     let _ = tx.send(Instruct::Delivery(response, None));
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/rpc/io.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         tx.send((req, sender.clone()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let _ = tx.send((req, sender.clone()));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute` is never used
[INFO] [stdout]   --> src/rpc/io.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl IOHandler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 21 |     pub fn execute(&self, req: Request) -> ZbusResult<Value> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieList` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let mut cookieList = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `cookie_list`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieString` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let cookieString = cookieList.iter().map(|cookie| String::from(cookie) + "; ").collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `cookie_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieList` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let mut cookieList = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^ help: convert the identifier to snake case: `cookie_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieString` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let cookieString: String = cookieList.iter().map(|cookie| String::from(cookie) + "; ").collect();
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `cookie_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated constants are never used
[INFO] [stdout]   --> src/rpc/protocol.rs:7:11
[INFO] [stdout]    |
[INFO] [stdout] 3  | impl Protocol {
[INFO] [stdout]    | ------------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7  |     const STATUS: &'static str = "status";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     const BODY: &'static str = "body";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 12 |     // Message body
[INFO] [stdout] 13 |     const API_KEY: &'static str = "apiKey";
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 14 |     // Authentication  Key
[INFO] [stdout] 15 |     const SIGNATURE: &'static str = "signature"; // Authentication signature generated
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     const PUB: &'static str = "pub";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     const TAKE: &'static str = "take";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     const REMOVE: &'static str = "remove";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 29 |     //Remove MQ/Channel
[INFO] [stdout] 30 |     const QUERY: &'static str = "query";
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 31 |     //Query MQ/Channel
[INFO] [stdout] 32 |     const PING: &'static str = "ping";     //Heartbeat ping
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     const FILTER: &'static str = "filter";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 37 |     //Filter on message's tag
[INFO] [stdout] 38 |     const TAG: &'static str = "tag";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 39 |     //Tag of message, if filter applied
[INFO] [stdout] 40 |     const OFFSET: &'static str = "offset";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 41 |     const CHECKSUM: &'static str = "checksum";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     const CHANNEL_MASK: &'static str = "channelMask";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 50 |     const WINDOW: &'static str = "window";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 51 |     const ACK: &'static str = "ack";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     const MASK_EXCLUSIVE: i32 = 1 << 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     const MASK_TAKEOVER: i32 = 1 << 2;   //NOT support yet
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `url` is never read
[INFO] [stdout]   --> src/wsocket/component.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct WsClient {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 17 |     tx: Sender<Instruct>,
[INFO] [stdout] 18 |     url: &'static str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mqType` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     mqType: String,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mq_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mqMask` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     mqMask: i32,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mq_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `subMessage` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let subMessage = Request::builder().headers(headers).id("0002f6eca3fc42c6812d23dd73cbed1").method("").url("").build();
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `sub_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/service/component.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | /         self.handler().deliver(subMessage).map(|resp| {
[INFO] [stdout] 49 | |             error!("{:?}", serde_json::to_string(&resp));
[INFO] [stdout] 50 | |         });
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let _ = self.handler().deliver(subMessage).map(|resp| {
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         tx.send(Instruct::Connect);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let _ = tx.send(Instruct::Connect);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             self.tx.send(Instruct::Connect);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let _ = self.tx.send(Instruct::Connect);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         self.tx.send(Instruct::IsClose(Some(tx)));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = self.tx.send(Instruct::IsClose(Some(tx)));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         self.tx.send(Instruct::Close(None));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let _ = self.tx.send(Instruct::Close(None));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         self.tx.send(Instruct::Exit);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let _ = self.tx.send(Instruct::Exit);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:91:41
[INFO] [stdout]    |
[INFO] [stdout] 91 | ...                   tx.send(Instruct::Closed);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 91 |                                         let _ = tx.send(Instruct::Closed);
[INFO] [stdout]    |                                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:153:29
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...                   cmd.close(CloseCode::Normal);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 153 |                             let _ = cmd.close(CloseCode::Normal);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:154:29
[INFO] [stdout]     |
[INFO] [stdout] 154 | ...                   tx.send(Instruct::Closed);//关闭成功失败都认为关闭成功
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 154 |                             let _ = tx.send(Instruct::Closed);//关闭成功失败都认为关闭成功
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:165:37
[INFO] [stdout]     |
[INFO] [stdout] 165 | ...                   tx.send(Instruct::Closed);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 165 |                                     let _ = tx.send(Instruct::Closed);
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 tx.send(Instruct::IsClose(None));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 let _ = tx.send(Instruct::IsClose(None));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:182:21
[INFO] [stdout]     |
[INFO] [stdout] 182 | /                     timeout.elapsed().map(|elapsed| if elapsed.as_secs() > 30 {
[INFO] [stdout] 183 | |                         tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout] 184 | |                     });
[INFO] [stdout]     | |______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     let _ = timeout.elapsed().map(|elapsed| if elapsed.as_secs() > 30 {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:183:25
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         let _ = tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         self.sender.send(self.ws_client.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let _ = self.sender.send(self.ws_client.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:218:86
[INFO] [stdout]     |
[INFO] [stdout] 218 |         msg.map_or_else(|e| debug!(" recv message err is {} [{}]", e, json), |msg| { self.tx.send(Instruct::Receive(msg)); });
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 218 |         msg.map_or_else(|e| debug!(" recv message err is {} [{}]", e, json), |msg| { let _ = self.tx.send(Instruct::Receive(msg)); });
[INFO] [stdout]     |                                                                                      +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |         self.tx.send(Instruct::Closed);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = self.tx.send(Instruct::Closed);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |             tx.send(Instruct::Delivery(reply(builder, headers, 400, "url required"), None));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 54 |             let _ = tx.send(Instruct::Delivery(reply(builder, headers, 400, "url required"), None));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 tx.send(Instruct::Delivery(reply(builder, headers, 404, format!("URL={} Not Found", url)), None));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 let _ = tx.send(Instruct::Delivery(reply(builder, headers, 404, format!("URL={} Not Found", url)), None));
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     tx.send(Instruct::Delivery(response, None));
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     let _ = tx.send(Instruct::Delivery(response, None));
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieList` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let mut cookieList = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `cookie_list`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieString` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let cookieString = cookieList.iter().map(|cookie| String::from(cookie) + "; ").collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `cookie_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mqType` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     mqType: String,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mq_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mqMask` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     mqMask: i32,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mq_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `subMessage` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let subMessage = Request::builder().headers(headers).id("0002f6eca3fc42c6812d23dd73cbed1").method("").url("").build();
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `sub_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/service/component.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | /         self.handler().deliver(subMessage).map(|resp| {
[INFO] [stdout] 49 | |             error!("{:?}", serde_json::to_string(&resp));
[INFO] [stdout] 50 | |         });
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let _ = self.handler().deliver(subMessage).map(|resp| {
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 67 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         tx.send(Instruct::Connect);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let _ = tx.send(Instruct::Connect);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             self.tx.send(Instruct::Connect);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let _ = self.tx.send(Instruct::Connect);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         self.tx.send(Instruct::IsClose(Some(tx)));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = self.tx.send(Instruct::IsClose(Some(tx)));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         self.tx.send(Instruct::Close(None));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let _ = self.tx.send(Instruct::Close(None));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         self.tx.send(Instruct::Exit);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let _ = self.tx.send(Instruct::Exit);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:91:41
[INFO] [stdout]    |
[INFO] [stdout] 91 | ...                   tx.send(Instruct::Closed);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 91 |                                         let _ = tx.send(Instruct::Closed);
[INFO] [stdout]    |                                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:153:29
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...                   cmd.close(CloseCode::Normal);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 153 |                             let _ = cmd.close(CloseCode::Normal);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:154:29
[INFO] [stdout]     |
[INFO] [stdout] 154 | ...                   tx.send(Instruct::Closed);//关闭成功失败都认为关闭成功
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 154 |                             let _ = tx.send(Instruct::Closed);//关闭成功失败都认为关闭成功
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:165:37
[INFO] [stdout]     |
[INFO] [stdout] 165 | ...                   tx.send(Instruct::Closed);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 165 |                                     let _ = tx.send(Instruct::Closed);
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 tx.send(Instruct::IsClose(None));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 let _ = tx.send(Instruct::IsClose(None));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:182:21
[INFO] [stdout]     |
[INFO] [stdout] 182 | /                     timeout.elapsed().map(|elapsed| if elapsed.as_secs() > 30 {
[INFO] [stdout] 183 | |                         tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout] 184 | |                     });
[INFO] [stdout]     | |______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     let _ = timeout.elapsed().map(|elapsed| if elapsed.as_secs() > 30 {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:183:25
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         let _ = tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         self.sender.send(self.ws_client.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let _ = self.sender.send(self.ws_client.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:218:86
[INFO] [stdout]     |
[INFO] [stdout] 218 |         msg.map_or_else(|e| debug!(" recv message err is {} [{}]", e, json), |msg| { self.tx.send(Instruct::Receive(msg)); });
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 218 |         msg.map_or_else(|e| debug!(" recv message err is {} [{}]", e, json), |msg| { let _ = self.tx.send(Instruct::Receive(msg)); });
[INFO] [stdout]     |                                                                                      +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |         self.tx.send(Instruct::Closed);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = self.tx.send(Instruct::Closed);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 63 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> examples/async.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn get_handler() -> Box<Future<Output=String>>
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn get_handler() -> Box<dyn Future<Output=String>>
[INFO] [stdout]   |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]  --> examples/rpc_client.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use zbus::{
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]  --> examples/rpc_server.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use zbus::{
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]  --> examples/rpc_invoke.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use zbus::message::{Message, Request};
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]  --> examples/rpc_invoke.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use zbus::rpc::IOHandlers;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]  --> examples/rpc_invoke.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use zbus::wsocket::Instruct;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]   --> examples/rpc_server.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use zbus::rpc::IOHandlers;
[INFO] [stdout]    |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]   --> examples/rpc_server.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use zbus::service::WsRpcServer;
[INFO] [stdout]    |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]   --> examples/rpc_server.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use zbus::wsocket::Instruct;
[INFO] [stdout]    |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `zbus`
[INFO] [stdout]   --> examples/rpc_server.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use zbus::log_config;
[INFO] [stdout]    |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> examples/rpc_server.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> examples/rpc_server.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde_json::{Error, Value};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]  --> examples/async.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let handle: Box<dyn Future<Output=String>> = get_handler();
[INFO] [stdout]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors; 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `deref` has an incompatible type for trait
[INFO] [stdout]   --> examples/trait_demo.rs:30:24
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn deref(&self) -> Box<Human> {
[INFO] [stdout]    |                        ^^^^^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        expected `&Human`, found `Box<Human>`
[INFO] [stdout]    |                        help: change the output type to match the trait: `&Human`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&Person) -> &Human`
[INFO] [stdout]               found signature `fn(&Person) -> Box<Human>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zbus-lib` (example "rpc_client") due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0053`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]  --> examples/trait.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     let p = test::<Person>();
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zbus-lib` (example "rpc_server") due to 6 previous errors; 2 warnings emitted
[INFO] [stderr] error: could not compile `zbus-lib` (example "trait_demo") due to 2 previous errors
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `sync` in this scope
[INFO] [stdout]   --> examples/loop.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     sync || "name".to_string()
[INFO] [stdout]    |     ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zbus-lib` (example "rpc_invoke") due to 4 previous errors
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]  --> examples/json.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Outer {
[INFO] [stdout]   |        ----- field in this struct
[INFO] [stdout] 9 |     id: String,
[INFO] [stdout]   |     ^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> examples/loop.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |     sync || "name".to_string()
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ expected `bool`, found `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> examples/loop.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn get_handler<F, H>() -> F
[INFO] [stdout]    |                -          -
[INFO] [stdout]    |                |          |
[INFO] [stdout]    |                |          expected `F` because of return type
[INFO] [stdout]    |                |          help: consider using an impl return type: `impl Fn() -> H`
[INFO] [stdout]    |                this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 66 |     sync || "name".to_string()
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected type parameter `F`, found `bool`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `F`
[INFO] [stdout]                         found type `bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0425.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zbus-lib` (example "loop") due to 4 previous errors
[INFO] running `Command { std: "docker" "inspect" "f24589f34e422ed3479740cee1c0fd4f2c8b0e3ac0edd28ecfd59f899b5d9126", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f24589f34e422ed3479740cee1c0fd4f2c8b0e3ac0edd28ecfd59f899b5d9126", kill_on_drop: false }`
[INFO] [stdout] f24589f34e422ed3479740cee1c0fd4f2c8b0e3ac0edd28ecfd59f899b5d9126
